package com.lantosec.hmrp.modules.report.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;
import java.util.Map;


public interface IClinicalMedicationService extends IService<Map> {

    /**
     * 住院患者抗菌药使用率监控
     * @param startTime
     * @param endTime
     * @param deptName
     * @param dateState
     * @param deptState
     * @return
     */
    PageVO<Map<String,Object>> getAntimicrobialsInpatientsList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, Integer dateState, Integer deptState);

    /**
     * 门急诊患者抗菌药使用率监控
     * @param startTime
     * @param endTime
     * @param deptName
     * @param diagTreatType
     * @param dateState
     * @param deptState
     * @param diagTreatState
     * @return
     */
    PageVO<Map<String,Object>> getAntibioticsOutpatientsList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, String diagTreatType, Integer dateState, Integer deptState, Integer diagTreatState);

    /**
     * 抗菌药使用情况监控
     * @param startTime
     * @param endTime
     * @param deptName
     * @param docName
     * @param diagTreatType
     * @param dateState
     * @param deptState
     * @param docNameState
     * @return
     */
    PageVO<Map<String,Object>> getAntimicrobialUseList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, String docName, String diagTreatType, Integer dateState, Integer deptState, Integer docNameState);

    /**
     * 抗菌药使用强度监控
     * @param startTime
     * @param endTime
     * @param deptName
     * @param dateState
     * @param deptState
     * @return
     */
    PageVO<Map<String,Object>> getStrengthAntimicrobialUseList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, Integer dateState, Integer deptState);

    /**
     * 抗菌药使用量排名
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param drugName
     * @param dateState
     * @param deptState
     * @param drugState
     * @return
     */
    PageVO<Map<String,Object>> getRankingAntimicrobialUseList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, String drugName, Integer dateState, Integer deptState, Integer drugState);

    /**
     * 超限处方监控
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param docName
     * @param medRecordNo
     * @param clinicSpecFlag
     * @param prescriptCost
     * @return
     */
    PageVO<Map<String, Object>> getOverLimitPrescriptionList(PageVO<Map<String,Object>> page, String startTime, String endTime, String deptName, String docName, String medRecordNo, Integer clinicSpecFlag, String prescriptCost);

    /**
     * 超限处方明细
     * @param prescriptNoColl
     * @return
     */
    Map<String, Object> getOverPrescriptionDetail(String prescriptNoColl);

    /**
     * 药占比监控
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param docName
     * @param diagTreatType
     * @param dateState
     * @param deptState
     * @param docNameState
     * @param diagTreatState
     * @return
     */
    PageVO<Map<String, Object>> getReportDrugPctMonitorList(PageVO<Map<String, Object>> page, String startTime, String endTime, String deptName, String docName, String diagTreatType, Integer dateState, Integer deptState, Integer docNameState, Integer diagTreatState);

    /**
     * 基本药物监控
     * @param page
     * @param startTime
     * @param endTime
     * @param deptName
     * @param diagTreatType
     * @param dateState
     * @param deptState
     * @param diagTreatState
     * @return
     */
    PageVO<Map<String, Object>> getReportBasicDrugMonitorList(PageVO<Map<String, Object>> page, String startTime, String endTime, String deptName, String diagTreatType, Integer dateState, Integer deptState, Integer diagTreatState);

}
